如何在JS中进行中文、字母、数字的排序

您所在的位置:网站首页 jsp 数组排序 如何在JS中进行中文、字母、数字的排序

如何在JS中进行中文、字母、数字的排序

2023-10-19 19:18| 来源: 网络整理| 查看: 265

在JS中进行中文、字母、数字的排序 sortResult(data, type) { let result = [] switch (type) { // 当比较的item为对象的某个属性时,value = item [key] // 1.中文(按第一个文字) case 'chinese': result = data.sort((item1, item2) => { const value1 = item1.charAt(0); const value2 = item2.charAt(0); // 这里localeCompare应该是不支持第二个参数的 但是并没有报错,请直接使用value1.localeCompare(value2) return value1.localeCompare(value2, 'zh-CN'); }) break; // 2.字母(按第一个字母且不区分大小写,请自行修改) case 'letter': result = data.sort((item1, item2) => { //2.1不区分大小写 const value1 = item1.charAt(0).toLowerCase(); const value2 = item2.charAt(0).toLowerCase(); return value1.localeCompare(value2); //2.2区分大小写 const value1 = item1.charAt(0); const value2 = item2.charAt(0); //测试2.2 const arr = ['A','a','b','B'] arr.sort(function (item1, item2) { return item1.localeCompare(item2); }) //输出["a", "A", "b", "B"] }) break; //3.数字 case 'number': result = data.sort((item1, item2) => { const value1 = item1; const value2 = item2; return value1 - value2; }) break; default: result = data; break; } return result; } localeCompare介绍 定义和用法

用本地特定的顺序来比较两个字符串。

语法

stringObject.localeCompare(target)

参数 描述

target 要以本地特定的顺序与 stringObject 进行比较的字符串。

返回值

说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

说明

把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

localeCompare() 方法提供的比较字符串的方法,考虑了*****规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3